#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
将station_data.csv文件中的北京时间转换为UTC时间
北京时间 (UTC+8) -> UTC时间 (减去8小时)
"""

import pandas as pd
from datetime import datetime, timedelta
import os

def convert_beijing_to_utc(input_file):
    """
    将CSV文件中的北京时间转换为UTC时间
    
    Args:
        input_file (str): 输入CSV文件路径
    """
    
    # 读取CSV文件，保留表头
    print(f"正在读取文件: {input_file}")
    df = pd.read_csv(input_file)
    
    # 检查文件是否为空
    if df.empty:
        print("文件为空，无需处理")
        return
    
    # 保存表头
    header = df.columns.tolist()
    
    # 解析时间列（第一列）
    print("正在解析时间列...")
    try:
        # 将时间字符串解析为datetime对象
        df['timestamp'] = pd.to_datetime(df['timestamp'], format='%Y/%m/%d %H:%M')
        
        # 减去8小时转换为UTC时间
        print("正在转换为UTC时间...")
        df['timestamp'] = df['timestamp'] - timedelta(hours=8)
        
        # 重新格式化为原来的字符串格式
        print("重新格式化时间...")
        df['timestamp'] = df['timestamp'].dt.strftime('%Y/%-m/%-d %H:%M')
        
        # 保存回原文件，保留表头
        print("正在保存文件...")
        df.to_csv(input_file, index=False, header=True)
        
        print(f"成功完成时间转换！文件已更新: {input_file}")
        
    except Exception as e:
        print(f"处理过程中出现错误: {e}")
        return

def main():
    # 文件路径
    input_file = "station_data.csv"
    
    # 检查文件是否存在
    if not os.path.exists(input_file):
        print(f"错误: 文件 {input_file} 不存在")
        return
    
    # 执行转换
    convert_beijing_to_utc(input_file)

if __name__ == "__main__":
    main()
